Dino Geek, try to help you

What is the difference between `include_once` and `require_once`?


`include_once` et `require_once` sont deux structures de langage en PHP, utilisées pour inclure des fichiers externes dans un script. Quoique similaires, elles ont des différences significatives en termes de comportement, spécialement en matière de gestion des erreurs et de contrôle d’exécution.

  1. include\_once

La structure `include_once` s’assure qu’un fichier est inclus et évalué une seule fois pendant l’exécution d’un script, même si cette directive est rencontrée plusieurs fois. Elle est principalement utilisée pour inclure des fichiers qui contiennent des définitions de fonctions, de classes ou des blocs de code réutilisables.

  1. Exemple :

```
// fichier.php
echo “Bonjour, Monde!”;
?>
```

```
// index.php
include_once ‘fichier.php’;
include_once ‘fichier.php’; // Cette ligne n’aura pas d’effet
?>
```

Le fichier `fichier.php` sera inclus une seule fois, et “Bonjour, Monde!” sera affiché une seule fois.

Gestion des erreurs : Si le fichier spécifié ne peut pas être inclus (par exemple, s’il n’existe pas), `include_once` émettra un avertissement (`E_WARNING`), mais le script continuera à s’exécuter.

```
include_once ‘non_existant.php’; // Émet un avertissement mais continue l’exécution
echo “Suite de l’exécution du script.”;
?>
```

  1. require\_once

La structure `require_once` fonctionne de la même manière qu’`include_once` en termes d’inclusion unique de fichiers. Cependant, la principale différence réside dans la gestion des erreurs. Si `require_once` échoue à inclure le fichier spécifié, elle émet une erreur fatale (`E_COMPILE_ERROR`) et arrête l’exécution du script immédiatement.

  1. Exemple :

```
// fichier.php
echo “Bonjour encore!”;
?>
```

```
// index.php
require_once ‘fichier.php’;
require_once ‘fichier.php’; // Cette ligne n’aura pas d’effet
?>
```

Comme pour `include_once`, le fichier `fichier.php` sera inclus une seule fois et “Bonjour encore!” sera affiché une seule fois.

Gestion des erreurs : Si le fichier spécifié ne peut pas être inclus, `require_once` produira une erreur fatale et le script s’arrêtera immédiatement.

```
require_once ‘non_existant.php’; // Émet une erreur fatale et arrête l’exécution du script
echo “Vous ne verrez jamais ce message.”;
?>
```

  1. Comparaison technique

1. Utilisation :
- `include_once` est utilisé lorsque l’inclusion du fichier n’est pas cruciale pour la continuation du script.
- `require_once` est utilisé lorsque l’inclusion du fichier est essentielle au bon fonctionnement du script.

1. Gestion des erreurs :
- `include_once` continue l’exécution en cas d’échec d’inclusion (émission d’un avertissement).
- `require_once` arrête l’exécution en cas d’échec d’inclusion (émission d’une erreur fatale).

1. Performance :
- Les deux fonctions peuvent avoir un impact sur la performance si utilisées de manière excessive, mais `require_once` peut être légèrement plus lent dû à une vérification stricte de l’inclusion obligatoire.

  1. Sources

1. PHP Manual – `include_once` : https://www.php.net/manual/fr/function.include-once.php
2. PHP Manual – `require_once` : https://www.php.net/manual/fr/function.require-once.php
3. Stack Overflow – Differences between include_once and require_once : https://stackoverflow.com/questions/2418473/what-is-the-difference-between-include-once-and-require-once

Ces sources fournissent une documentation exhaustive et des discussions communautaires utiles pour comprendre en profondeur le fonctionnement de ces structures.


Simply generate articles to optimize your SEO
Simply generate articles to optimize your SEO





DinoGeek offers simple articles on complex technologies

Would you like to be quoted in this article? It's very simple, contact us at dino@eiki.fr

CSS | NodeJS | DNS | DMARC | MAPI | NNTP | htaccess | PHP | HTTPS | Drupal | WEB3 | LLM | Wordpress | TLD | Domain name | IMAP | TCP | NFT | MariaDB | FTP | Zigbee | NMAP | SNMP | SEO | E-Mail | LXC | HTTP | MangoDB | SFTP | RAG | SSH | HTML | ChatGPT API | OSPF | JavaScript | Docker | OpenVZ | ChatGPT | VPS | ZIMBRA | SPF | UDP | Joomla | IPV6 | BGP | Django | Reactjs | DKIM | VMWare | RSYNC | Python | TFTP | Webdav | FAAS | Apache | IPV4 | LDAP | POP3 | SMTP

| Whispers of love (API) | Déclaration d'Amour |






Legal Notice / General Conditions of Use